// 字符串方法：match replace split search

// let reg = /h/g;
// let str = 'hello world';
// console.log(reg.test(str)); // true
// console.log(str.match(reg)); // [ 'h' ]

// -------------------捕获和引用----------------------
// 注：正则加小括号，第一表示这是一个整体，第二表示捕获
//     \1  \2 等待，表示引用，引用前面捕获的值
// let str = '1122 3434 5566 7878 9009';
// // 1. 匹配连续的四个数字
// console.log(str.match(/\d\d\d\d/g)); // [ '1122', '3434', '5566', '7878', '9009' ]
// // 2. 匹配连续的四个数字，要求前两个数字相同，后两个数字相同
// console.log(str.match(/(\d)\1(\d)\2/g)); // [ '1122', '5566' ]
// // 3. 匹配连续的四个数字，要求1、3位置数字相同，2、4位置数字相同
// console.log(str.match(/(\d)(\d)\1\2/g)); // [ '3434', '7878' ]


// ----------------------exec 正则方法---------------------
// exec 特点：一次只能匹配一个结果
//           如果还需要匹配其他结果，继续调用
//           如果还需要匹配其他结果，继续调用
// let str = 'this is a ES6 that is a H5 and css3';
// let reg = /[A-Z]+\d/g;
// console.log(reg.exec(str)); // ['ES6', ......]
// console.log(reg.exec(str)); // ['H5', ......]
// console.log(reg.exec(str)); // null


// --------------------exec 方法，带小括号-------------------
let str = 'this is a ES6 that is a H5 and css3';
let reg = /[A-Z]+(\d)/g;
console.log(reg.exec(str)); // ['ES6', '6', ......]
console.log(reg.exec(str)); // ['H5', '24', ......]
console.log(reg.exec(str)); // null